1. Field of the Invention
The present invention relates to remote execution of commands, and more particularly, to remote execution of commands across different operating system platforms.
2. Description of the Related Art
Computers are commonly networked together so as to facilitate the transfer of data as well as to distribute work amongst the different computers. When the different computers include different operating systems, incompatibility problems can arise and cause programs on the computers to crash or otherwise not execute properly.
A major incompatibility problem between computers using different operating systems is that file names (paths) or directory structures utilized by the operating systems are not formatted or arranged the same way. Another incompatibility is that the commands themselves are not the same in different operating systems (e.g., UNIX vs. Microsoft Windows). Hence, when a command is issued at a local computer for remote execution on a remote computer, the command will likely not execute properly on the remote computer.
Beyond these incompatibility problems, remote execution of commands face other problems. Namely, remote execution of commands is a stateless operation in which the user of the local computer causes a remote command to execute on a remote computer, but does not cause the user to login to the remote computer (though the user would likely need to have an account on the remote machine at least in the UNIX environment).
The UNIX operating system includes a command "rsh" (for remote shell). The rsh command enables a local computer to request execution of commands on a remote computer. In particular, the rsh command requires (i) the name of the computer system you want to execute the command and (ii) the command you want to run on the remote computer. For example, if the command "rsh pumpkin lpq" is entered, then the lpq command runs on system pumpkin. Hence, in this example, the lpq command asks what is waiting for the printer on system pumpkin. So long as both the local and remote machines are utilizing the UNIX operating system, the rsh command in UNIX is useful to execute commands in a remote fashion.
When both the local and the remote machines are using the same (or compatible) operating systems, then remote execution will execute. However, because remote execution is stateless, the result produced by executing the command remotely may not be the result intended. Namely, if a user were to enter a command to list files, the resulting list would likely not be the list of files that the user desired because the remote machine would not have the same working directory as the local machine. When the computers are being used such that the local computer is using the disk storage on the remote computer, then it is important that operations performed with respect to the stored files yield the same results regardless of whether performed locally or remotely. However, due to the stateless nature of conventional remote execution, the results often differ between local and remote execution of commands.
Moreover, when the machines are not using the same operating system, besides the stateless problem, the differences in the operating systems cause additional problems in the remote execution of the commands. For example, if the local computer is using a Macintosh computer and the remote computer is a UNIX-based machine, remote commands are not likely to execute as intended. In particular, the commands are different, the path names and directory structures are different, and the result of commands may also differ.
Thus, there is need to provide solutions to the compatibility and stateless problems when remotely executing commands.